package edu.scau.mis.pos.service;

import edu.scau.mis.pos.entity.PosItem;
import edu.scau.mis.pos.entity.PosOrder;
import edu.scau.mis.pos.entity.PosOrderItem;
import edu.scau.mis.pos.vo.DashboardVo;
import edu.scau.mis.pos.vo.OrderItemVo;
import org.springframework.web.bind.annotation.RequestBody;

import java.util.List;
import java.util.Map;

/**
 * (PosOrderItem)表服务接口
 *
 * @author makejava
 * @since 2021-11-04 23:21:22
 */
public interface IOrderItemService {

    /**
     * 通过ID查询单条数据
     *
     * @param orderItemId 主键
     * @return 实例对象
     */
    PosOrderItem queryById(Integer orderItemId);

    /**
     * 分页查询
     *

     * @return 查询结果
     */
    List<PosOrderItem> queryAll(PosOrderItem posOrderItem);

    /**
     * 新增数据
     *
     * @param posOrderItem 实例对象
     * @return 实例对象
     */
    PosOrderItem insert(PosOrderItem posOrderItem);

    /**
     * 修改数据
     *
     * @param posOrderItem 实例对象
     * @return 实例对象
     */
    PosOrderItem update(PosOrderItem posOrderItem);

    /**
     * 通过主键删除数据
     *
     * @param orderItemId 主键
     * @return 是否成功
     */
    boolean deleteById(Integer orderItemId);


    /**
     * 根据读者证号查询读者信息和业务关键信息
     *
     * @param orderNo 读者证号
     * @return 读者信息，借阅中图书数量，超期未还数
     */
    Map<String,Object> getOrderAndBuyInformationByOrderNo(@RequestBody String orderNo);

    /**
     * 添加图书到待借图书列表
     * @param orderItemVo 传值对象
     * @return 待借图书列表
     */
    List<PosItem> enterLineOrderItem(OrderItemVo orderItemVo);

    /**
     * 确认借书
     * @param orderNo 读者证号
     * @return 操作结果
     */
    boolean ConfirmBuyItem(@RequestBody String orderNo);

    /**
     * 按图书类别id统计借阅数
     * @return 结果集合
     */
    List<DashboardVo> CountByCategoryId();

    String queryExistOrderItemQuantity(PosOrderItem posOrderItem);


}
